Global positioning systems (GPS) generally include a constellation of Earth-orbiting satellites which transmit pseudo-random ranging signals from which user terminals can calculate their three-dimensional location, velocity and timing information anywhere on or near the surface of the Earth. Generally, a minimum of four satellites must be visible for accurate determination of user location.
The constellation of satellites are in documented orbits where the position of each satellite, at any time, may be precisely known. A GPS receiver at the user terminal receives the multiplicity of signals transmitted simultaneously from the GPS satellites and determines its position, ie., user terminal position, by computing the relative times of arrival of such signals. The signals transmitted by the satellites include, as part of their navigation message, data on the orbital position of the satellite, so-called "ephemeris data", as well as clock correction data. The process of searching for appropriate GPS satellites and receiving the satellite signals, demodulating the ephemeris data for at least four of the satellites and computing the location of the GPS receiver at the user terminal from this data is a lengthy process, often requiring several minutes or more. Processing times of several minutes or more are generally unacceptable in portable devices as they greatly reduce battery life.
Virtually all known GPS receivers utilize correlation methods to compute the pseudo-range for each satellite. The pseudo-ranges are simply the time delays measured between the received signal from each satellite and a local clock at the GPS receiver. These correlation methods are generally performed in real time, and often with hardware correlators. Since a GPS is generally a CDMA (Code Division Multiple Access) system, all of the satellite signals are broadcast on the same frequency but with different code sequences. These code sequences are generally high rate repetitive signals which have a binary phase-reversal rate, also known as the "chipping" or "flipping" rate, of 1.023 MHz and a repetition period of 1,023 chips for a code period of 1 milli-second. Each GPS satellite broadcasts a signal with a unique code sequence.
In order to receive a GPS signal from a given GPS satellite, the receiver hardware multiplies the received signal by a stored replica of the appropriate code sequence contained within the GPS receiver's local memory and sums the output of this process for 1 to 20 milli-seconds. It should be noted that there must be exact synchronization between the code sequence contained within the GPS receiver and the code sequence broadcast by the satellite; if you are only one bit or chip off in "syncing-up" with the code sequence from the GPS satellite, you will not see the signal.
Acquisition of a GPS signal occurs by sequentially adjusting the relative timing, which is defined as code phase, of the stored replica code sequence in the GPS receiver relative to the received signal broadcast by the satellite, and observing the correlation output. As previously mentioned, the alignment of the code phase must be within less than one chip of the sequence for any measurable response. This might mean searching for a response by trying up to all 1,023 possible code phase positions. Additionally, as the integration time is from 1 to 20 milli-seconds, the RF (or IF) frequency used in the correlation process must match the received GPS signal frequency within 700 to 30 Hz, respectively, for maximum correlation response. Since Doppler shifts of up to 5,000 Hz may occur on the GPS signals, the acquisition process must include trying various RF (or IF) frequencies of the replica signal until the correlation response is detected. Once correlation occurs, the GPS receiver can determine the time delay between the received signal and a local clock. The initial determination of the presence of this output is termed "acquisition".
Once acquisition occurs, the process enters the tracking phase in which the timing of the local reference is adjusted in small amounts in order to maintain a high correlation output. The correlation output during the tracking phase may be viewed as the GPS signal with the pseudo-random code removed, or, in common terminology, "despread". This despread signal can then be further demodulated to obtain the 50 bits/sec navigation message that is superimposed on the GPS code sequence coming down from the satellite. This navigation message provides the rest of the information needed to obtain the mathematical solution of where the user terminal is located.
Generally, GPS receivers suffer from lack of sensitivity such that they must always work outdoors with a clear line of sight to all satellites. In other words, at least four GPS satellites must be clearly in view to the GPS receiver, without obstruction. As such, GPS receivers generally encounter problems, and may actually be unusable, in portable applications or in areas where there is significant foliage or other obstruction such as building blockage or in-building applications.
Prior solutions to these problems have used an auxiliary system to supply all of the information that could be obtained at the GPS receiver by demodulating the GPS satellite signals directly on a separate communication channel, i.e., an auxiliary channel. While these prior solutions worked, they required the user terminal to communicate with a server within the auxiliary system to obtain the necessary information every time that a location fix was desired by the user terminal. Since a charge would invariably be levied for this service, it was desired to create a method whereby these charges could be avoided and yet the GPS still work in an obstructed environment, with one or more of the GPS satellite signals up to 20 dB weaker than normal.
The present invention is directed toward overcoming one or more of the above-mentioned problems.